Method and system for determinging a washing machine load unbalance

ABSTRACT

A clothes washing machine system including a method of detecting a load unbalance. The washing machine system includes a cabinet having a drum rotatably mounted therein. A motor is coupled to the drum for rotating the drum within the cabinet. A memory device is accessible by a processor, such as a digital signal processor (DSP). The memory contains program code for implementing a method that includes determining the motor torque ripple, determining the motor speed, and determining the load unbalance mass based on the motor torque and speed.

CROSS REFERENCE TO RELATED APPLICATION

[0001] This application claims the benefit of U.S. Provisional Patent Application No. 60/466,106, filed on Apr. 28, 2003, which is incorporated by reference herein.

BACKGROUND OF THE DISCLOSURE

[0002] 1. Field of the Disclosure

[0003] The present invention relates generally to clothes washing machines, and more particularly, to a method and system for detecting and quantifying an unbalance mass in a washing machine drum.

[0004] 2. Description of Related Art

[0005] Residential and commercial clothes washing machines are well known. A generally cylindrical drum or basket for holding the clothing and other articles to be washed is rotatably mounted within a cabinet. Typically, an electric motor drives the drum. During a wash cycle, water and detergent or soap are forced through the clothes to wash them. The detergent is rinsed from the clothes, then during one or more spin cycles the water is extracted from the clothes by spinning the drum.

[0006] One way of categorizing washing machines is by the orientation of the washing machine drum. Vertical-axis washing machines have the drum situated to spin about a vertical axis. Articles to be washed are loaded into the drum through a door, which is usually situated on the top of the washing machine. A vertical-axis washing machine drum includes an agitator situated therein, which cleans clothes by pushing and pulling them down into the water. A motor typically drives the agitator, in addition to spinning the vertically-oriented drum during spin cycles. The motor usually operates at a constant speed, and a series of gears or belts are configured to drive the proper component at the proper time during each washing machine cycle.

[0007] Horizontal-axis washing machines, having the drum oriented to spin about an essentially horizontal axis, do not include an agitator, and a variable-speed motor drives the drum. During wash cycles, the drum of the horizontal-axis washing machines rotates at a relatively low speed. The rotation speed of the drum is such that clothes are lifted up out of the water, using baffles distributed about the drum, then dropped back into the water as the drum revolves.

[0008] Both vertical and horizontal-axis washing machines extract water from clothes by spinning the drum, such that centrifugal force extracts water from the clothes. It is desirable to spin the drum at a high speed and extract the maximum amount of water from the clothes in the shortest possible time. Spin time is reduced, but more power is required to spin at a higher speed. The distribution of the clothes about the periphery of the drum affects the washing machine's ability to spin the drum at a high speed.

[0009] If the clothes in the drum are not distributed evenly, the drum will not be able to rotate at an acceptable spin speed without excessive drum vibration in the cabinet. Several factors contribute to drum load unbalance problems. For instance, with vertical-axis washing machines, when a wash or rinse cycle completes and the water is drained from the drum, the clothes are gathered at the bottom of the drum, and are not evenly distributed about the entire drum. Moreover, the drum typically is not perfectly cylindrical; but rather, includes a draft. When the drum spins, the clothes will “creep” up the sides of the drum. However, since a constant speed motor typically drives the vertically-oriented drum, the motor quickly ramps the drum up to the full spin speed. There is little chance for the clothes to distribute about the periphery of the drum, so they creep up the drum's sides in an unbalanced fashion.

[0010] The unbalanced, spinning drum vibrates within the cabinet. In conventional vertical-axis washing machines, if the vibration is too severe, the drum will trip a switch mounted inside the cabinet, stopping the drum's rotation and activating a drum-unbalance alarm. A user then manually redistributes the wet clothes within the drum, and restarts the spin cycle.

[0011] As discussed above, the drum in a horizontal-axis machine is driven by a variable speed motor. This allows the inclusion of a “distribution” cycle, wherein the drum is rotated faster than the rotation speed of a wash cycle, but slower than in a spin cycle. The drum rotation speed is gradually increased, until the clothes begin to “stick” to the sides of the drum due to centrifugal force. The slower rotation speed allows the clothes to more evenly distribute about the sides of the drum. Once the clothes have been distributed about the drum, the speed is increased to a full spin speed to extract the water from the clothes.

[0012] Horizontal-axis washing machines, however, are not immune to drum unbalance problems. If the clothes do not evenly distribute during the distribution cycle, the unbalanced load within the drum will cause unwanted vibrations as the drum rotates. Rather than applying all of the motor's power to spinning the drum at the highest possible speed, power is wasted in drum movement and cabinet vibrations. Detecting the amount of load unbalance allows the spin speed to be optimized to give an efficient wash, while at the same time minimizing the vibrations caused by centrifugal unbalance forces. In cases where the amount of unbalance detected is very high, the washing machine can be programmed to stop its spin cycle, shake the drum to redistribute the washing, and then restart the spin cycle.

[0013] Thus, it is desirable to detect the presence and the amount of an unbalance condition in a rotating drum to optimize spin speed and/or take corrective action when necessary. However, prior art methods for detecting unbalance conditions have been largely unsatisfactory. The present invention addresses these, and other, shortcomings associated with the prior art.

SUMMARY OF THE DISCLOSURE

[0014] In one aspect of the present invention, a clothes washing machine system implements a method of detecting a load unbalance. The washing machine system includes a cabinet having a drum rotatably mounted therein. A motor is coupled to the drum for rotating the drum within the cabinet. A memory device is accessible by a processor, such as a digital signal processor (DSP). The memory device and processor may be separate devices or alternatively the memory device may be embedded with the processor itself, as is the case with a microcontroller. The memory contains program code for implementing a method that includes determining the motor torque ripple, determining the motor speed, and determining the load unbalance mass based on the motor torque and speed.

[0015] The motor torque ripple may be determined by measuring the motor voltage and current. In exemplary embodiments, a mathematical model of the washing machine drum load is developed that describes the relationship between motor torque and the unbalance mass. Model coefficients are determined using a parameter estimator, such as a recursive least squares estimator, and from these coefficients the unbalance mass can be obtained.

[0016] Acceleration and the angular position of the drum may be calculated based on the drum speed and vice versa. In accordance with other aspects of the invention, the motor is operated to drive the drum at a predetermined speed, at which the drum movement on its suspension is minimal. This allows the use of a fixed axis model of the system.

BRIEF DESCRIPTION OF THE DRAWINGS

[0017] Other objects and advantages of the invention will become apparent upon reading the following detailed description and upon reference to the drawings in which:

[0018]FIG. 1 is a block diagram of a washing machine system in accordance with aspects of the present invention.

[0019]FIG. 2 is a perspective view of an exemplary horizontal-axis washing machine.

[0020]FIG. 3 is a block diagram illustrating an exemplary speed control loop.

[0021]FIG. 4 is a flow diagram summarzing a method of determining an unbalance mass in accordance with the present invention.

[0022]FIG. 5 illustrates laundry distribution in a washing machine drum.

[0023]FIG. 6 illustrates laundry distribution including a point mass unbalance in a washing machine drum.

[0024]FIG. 7 conceptually illustrates the point mass unbalance in the washing machine drum.

[0025]FIG. 8 is a graph illustrating washing machine drum velocity variation with time and the position of an unbalance mass with respect to the center of the drum.

[0026]FIG. 9 is a side view of a washing machine the drum inclined relative to the horizontal.

[0027]FIG. 10 illustrates the washing machine and point mass unbalance shown in FIG. 7, including the effects of drum inclination.

[0028]FIG. 11 conceptually illustrates a belt and pulley transmission system for driving a washing machine drum.

[0029]FIG. 12 illustrates torque and speed profiles resulting from accelerating a washing machine drum from a first speed to a second speed for determining drum inertia in accordance with aspects of the present invention.

[0030]FIG. 13 illustrates a torque profile resulting from accelerating a washing machine drum from a first speed to a second speed for determining drum inertia in accordance with further aspects of the present invention.

[0031]FIG. 14 conceptually shows a washing machine drum containing laundry and an unbalance mass.

[0032] While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof have been shown by way of example in the drawings and are herein described in detail. It should be understood, however, that the description herein of specific embodiments is not intended to limit the invention to the particular forms disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention as defined by the appended claims.

DETAILED DESCRIPTION OF THE INVENTION

[0033] Illustrative embodiments of the invention are described below. In the interest of clarity, not all features of an actual implementation are described in this specification. It will of course be appreciated that in the development of any such actual embodiment, numerous implementation-specific decisions must be made to achieve the developers' specific goals, such as compliance with system-related and business-related constraints, which will vary from one implementation to another. Moreover, it will be appreciated that such a development effort might be complex and time-consuming, but would nevertheless be a routine undertaking for those of ordinary skill in the art having the benefit of this disclosure.

[0034]FIG. 1 is a block diagram, schematically illustrating a washing machine 100 in accordance with an embodiment of the present invention. The washing machine 100 includes a cabinet 102, in which a drum 104 is rotatably mounted. In one embodiment of the invention, the washing machine 100 is a horizontal-axis washing machine. In other words, the drum 104 is configured to rotate about a substantially horizontal axis within the cabinet 102. FIG. 2 illustrates a horizontal-axis washing machine 101 in accordance with a specific embodiment of the invention.

[0035] Referring back to FIG. 1, a motor 106 is operably connected to the drum 104 to drive the drum 104, via some transmission system 105 which could be a belt drive, clutch or direct coupling, for example. The motor 106 includes a stator 106 a and a rotor 106 b situated to rotate relative to the stator 106 a. Any suitable motor type may be employed, including an induction motor, a brushless permanent magnet motor (BPM), a switched reluctance (SR) motor, etc. In one particular exemplary embodiment, a three-phase controlled induction motor (CIM) is used. A processing device 112 controls operation of the motor 106, and a memory device 108 is accessible by the processor 112. The processor 112 may comprise, for example, any suitable type of digital processor such as a digital signal processor (ASP), microcontroller or microprocessor.

[0036] The memory 108 stores program instructions executed by the processor 112 for controlling operation of the washing machine system 100. Among other things, the processor 112 is programmed to control the speed of the motor 106 and thus, the drum 104. A typical speed control loop 200 is shown in FIG. 3. A speed command signal 202 and a signal 204 indicating the actual speed of the rotor 106 b are applied to a speed controller 210, such as a proportional/integral (PI) controller. The speed controller 210 compares the speed demand signal 202 and the actual speed signal 204 to calculate a speed error, and in response thereto, outputs a control signal 212 that varies the application of power to the motor to achieve the desired speed.

[0037] Speed/position detection and control of the rotor 106 b may be implemented, for example, based on feedback from a tachometer on the motor shaft. In other washing machine systems embodying aspects of the present invention, position/speed of the rotor 106 b is calculated or estimated from monitored parameters of the motor 106, such as the motor's voltage and current. These systems are often called “sensorless” systems since they do not use a physical transducer to determine the position and or speed. In such sensorless systems, the processor 112 receives indications of the motor current and voltage, and an algorithm stored in the memory 108 determines the position/speed of the rotor 106 b based thereon.

[0038] As discussed in the Background section herein above, washing machines typically include a variety of operation cycles. Washing machines—particularly horizontal-axis machines—include one or more wash cycles, distribution cycles and spin cycles. Drum unbalance is rarely a significant problem during wash cycles, which, in a horizontal-axis machine, use a drum rotation speed of about 50 rpm to tumble the clothes in and out of the water. Distribution cycles typically operate at a drum rotation speed of about 55-110 rpm (clothes will begin to “plaster” or “stick” to the sides of the drum 104 at one G of centrifugal force).

[0039] In comparison, the minimum rotation speed that is normally considered a “spin cycle” speed is about 250 rpm. For example, a drum rotation speed of about 350-450 may be considered a “low” spin speed, a drum rotation speed of about 650-850 may be considered a “medium” spin speed, and a drum rotation speed of about 1,000 rpm may be considered a “high” spin speed. As discussed above, it is desirable to rotate the drum 104 at a high speed to extract the maximum amount of water from the clothes in the shortest possible time.

[0040] Detecting the amount of a load unbalance allows the spin speed to be optimized to give an efficient wash, while at the same time minimizing the vibrations caused by centrifugal unbalance forces. Accordingly, the memory 108 includes program code that when executed by the processor, implements methods to determine an unbalance mass in the rotating drum 104.

[0041] An exemplary method for determining the unbalance mass is summarized in FIG. 4. The unbalance mass is determined based on a determination of the motor torque and speed ripple. A measure of the amount of unbalance is determined by using a parameter estimator, such as a recursive least squares (RLS) parameter estimator to calculate the amount of torque ripple. The relationship between torque ripple and unbalance mass is known by constructing a model of the drum load. In certain embodiments, a sensorless motor is employed, in which the motor speed and motor torque are calculated from terminal measurements of the motor's voltage and current. Alternatively, other instrumentation may be used, such as a tachometer, to determine speed.

[0042] In block 250 of FIG. 4, the combined drum and wash inertia is estimated. Inertia estimation schemes are described further below. Once the combined inertia has been estimated the motor is commanded to run at a steady speed, which is set such that plastering occurs with minimal movement of the drum on its suspension. As indicated in block 252, the motor torque and speed variables are then read. Other system variables such as acceleration and position can be determined from the motor speed. Additionally, all motor variables can be referred to the drum using a model of the transmission system.

[0043] In block 254 the inertial torque caused by any speed ripple is subtracted from the overall torque, which ensures that the remaining torque ripple is due entirely to gravity acting on the unbalanced mass. The inertial torque ripple is calculated from the inertia calculated in block 250 and the speed.

[0044] The drum position and compensated torque are then fed into a parameter estimator, which gives an estimate of the torque ripple in block 256. Blocks 252, 254 and 256 are repeated at a plurality of sampling points until the torque ripple estimate converges to a steady value, typically within five drum cycles. In block 256, the unbalance mass is determined based on the torque ripple. The method summarized in FIG. 4 is described in further detail below.

[0045] During the washing machine distribution cycle the laundry gets plastered around the periphery of the drum 104 in a random, and essentially unpredictable, manner. The distribution of the laundry 110 will invariably be uneven as shown in FIG. 5. However, the effect of an unevenly distributed wash load on the system is actually equivalent to that of an evenly distributed wash load with a point mass unbalance. Thus, for purposes of this disclosure, the wash load 110 is assumed to be evenly distributed with a point mass unbalance 112 as shown in FIG. 6.

[0046] In accordance with aspects of the present invention, a mathematical model of the washing machine system is constructed. Thus, in order to detect drum unbalance it is necessary to identify the system variables that will be affected by drum unbalance. As noted above, these variables include drum/motor torque and drum/motor angular velocity. When unbalance is present, the drum/motor torque and angular velocity have a cyclically varying component at drum frequency (there may be some higher frequency components as well but these are essentially the result of second order effects). The amplitude of this cyclically varying component, or ripple, gives a measure of the amount of unbalance present. The added advantage of using these variables to detect unbalance is that both can be estimated using sensorless control, thus eliminating the need for measurement instrumentation.

[0047] Accordingly, the dynamic model of the washing machine drum system obtained contains variables such as torque and speed as well as acceleration and drum position, which can be determined from speed and vice versa. The coefficients of the variables in the dynamic model are composite of various system parameters such as unbalance mass, drum inertia and friction coefficients.

[0048] Assuming that the variables of the dynamic model can be obtained by sensorless techniques, or even by using onboard instrumentation, a parameter estimator can be employed to determine the coefficients of the variables and hence the required system parameters such as unbalance mass. A suitable parameter estimator for this purpose is a recursive least squares (RLS) estimator.

[0049] There is a certain amount of unbalance inherent in an empty drum 104, so the equivalent point mass unbalance 112 will be that of both the empty drum 104 and the laundry 110 combined. There is no advantage in trying to separate drum unbalance 112 from the laundry 110 unbalance because it is both of these unbalances acting together that ultimately results in the observed vibrations of the washing machine.

[0050] An exemplary process of constructing the dynamic model of the drum 104 in accordance with one embodiment of the invention is further detailed herein. The first stage in constructing such a model of the drum is to assume that the axis of rotation of the drum is fixed—the drum suspension is ignored. The fixed axis model is then developed in three steps: the first step is to assume that the axis of the drum is horizontal and that drum friction and drag losses are zero; the second step is to include the effects of friction and drag; and finally the third step is to include drum inclination.

[0051]FIG. 7 shows the point mass unbalance 112 on the periphery of the drum 104, which is turning at some angular velocity ω_(d). Although the unbalance mass 112 in FIG. 7 is shown to act at the drum radius r_(d), it will not be assumed that this is always the case, because any distributed laundry will affect the location of the unbalance mass with respect to the center of the drum. The variable r_(u) is therefore used in the calculations detailed herein to denote the radial distance of the unbalance mass 112 from the center of the drum 104.

[0052] Drum position θ_(d) is measured in a counterclockwise direction between a reference point 120 on the drum 104 and a fixed datum 122, which is arbitrarily chosen to be at 3 o'clock. The location of the point mass unbalance 122 is given by φ_(u) with respect to the drum reference point 120 in a clockwise direction. The position of the point mass unbalance 112 with respect to the fixed datum 122 is therefore (θ_(−φ) _(u)). FIG. 7 additionally shows the force on the unbalance mass 112 due to gravity m_(u)g.

[0053] Assuming for the moment that there are no friction and drag losses associated with the drum 104, the drum torque τ_(d) in the direction of motion is given by:

τ_(d) =m _(u) ·g·r _(u)·cos(θ_(d)−φ_(u))+J _(d) ·p(ω_(d))   (1)

[0054] where J_(d) is the combined inertia of the drum and the unbalance mass and p is a differential operator, d/dt.

[0055] It can be seen from Equation 1 that if the velocity ω_(d) were constant, i.e. uniform circular motion, the drum torque τ_(d) would vary cyclically with a mean value of zero. Therefore, for the fixed speed case Equation 1 reduces to:

τ_(d) =m _(u) ·g·r _(u)·cos(θ_(d)−φ_(u))

[0056] In practice there will be some variation in drum velocity ω_(d), depending upon the response of the system's speed controller 210 implemented by the processor 112. If the response of the speed controller 210 is very sluggish, the torque τ_(d) will be constant and zero. Therefore, for the fixed (and zero) torque case Equation 1 reduces to:

−m _(u) ·g·r _(u)·cos(θ_(d)−φ_(u))=J _(d) ·p(ω_(d))

[0057]FIG. 8 shows the drum velocity ω_(d) variation with time, along with the vertical (y-axis) position 130 of the unbalance mass 112 with respect to the center of the drum 104. The parameters used to obtain these curves were as follows: unbalance mass m_(u)=0.5 kg; r_(u)=0.3 m; ω_(d(initial))=20 rad/s; J_(d)=0.01 kgm². These parameters are not necessarily representative of an actual drum with unbalance. Rather, they were chosen for illustrative purposes only. It can be seen that the unbalance mass 112 moves quickly through its nadir, and slowly as it passes through its zenith.

[0058] As the mean velocity of the drum ω_(d) increases, the magnitude of the speed ripple decreases—as can be seen by considering the energy system:

m _(u) ·g·2·r _(u)=½·J _(d)·(ω_(d(max)) ²−ω_(d(min)) ²)

[0059] where the left side of the equation is the potential energy gained due to gravity in moving the unbalanced mass 112 from the bottom to the top of the drum 104. The right side is the gain in kinetic energy in accelerating the unbalance mass 112 from ω_(d(min)) to ω_(d(max)) where ω_(d(min)) is the angular velocity of the drum 104 when the unbalance mass 112 is at the top of the drum 104 and ω_(d(max)) is the angular velocity of the drum 104 when the unbalance mass 112 is at the bottom of the drum 104.

[0060] In practice, both torque and velocity will vary, and so the observed behavior of the system will lie somewhere between the two extremes outlined above. The amount of torque and speed ripple will depend upon the response of the speed control loop 200, which in turn usually depends upon the proportional and integral gains of the speed controller 210. Therefore, the two cases considered are not appropriate for developing the system model, so the general equation given by Equation 1 is used from here onwards. However, it is important to consider the two extremes to understand that speed and torque ripple are affected by the response of the speed loop, and not just the unbalance mass 112.

[0061] In practice, a certain amount of torque is required to keep the drum running at a given speed in order to overcome forces due to drum friction and wind drag. Two types of friction will be considered: coulomb and viscous friction. Coulomb friction is a constant and is therefore independent of speed, although its polarity depends on the direction of rotation of the drum. Viscous friction, on the other hand, is proportional to the angular velocity of the drum. Both of these frictional forces take into account the resistance to motion due to the bearings, lubrication and wind drag, where the latter is assumed to be a type of viscous friction.

[0062] The coulomb friction is given by τ_(c)signum(ω_(d)), where signum(ω_(d)) denotes that its polarity is the same as that of the drum's angular velocity, and the viscous friction is given by B_(d)·ω_(d), where B_(d) is the drum's viscous friction coefficient. Expanding Equation 1 to include these frictional forces gives:

τ_(d) =m _(u) ·g·r _(u)·cos(θ_(d)−φ_(u))+J _(d) ·p(ω_(d))+B _(d)·ω_(d)+τ_(c)signum(ω_(d))   (2)

[0063] The drum 104 in some versions of “horizontal” axis washing machines is not actually horizontal, but rather, is inclined at some angle to the horizontal. FIG. 9 shows a side view of the drum 104 inclined at an angle α to the horizontal. The gravitational force acting on the unbalanced mass 112 is m_(u)g. However, because the drum 104 is inclined at an angle a to the horizontal, the force perpendicular to the shaft 140 is given by:

Force=m _(u) ·g·cos(α)

[0064] The drum 104 illustrated in FIG. 7 is redrawn in FIG. 10 to include the effects of drum inclination as shown in FIG. 9.

[0065] Equation 2 can now be modified to include drum inclination as follows:

τ_(d) =m _(u) ·g·r _(u)·cos(α)·cos(θ_(d)−φ_(u))+J _(d) ·p(ω_(d))+B_(d)·ω_(d)+τ_(c)signum(ω_(d))   (3)

[0066] Note that if α=90°, the gravitational force on the unbalance mass 112 acts along the axis of the shaft 140 and therefore has no effect on shaft torque.

[0067] Referring back to FIG. 1, a motor 106 is operably connected to the drum 104 to drive the drum via a transmission system 105. In order to refer system variables, such as torque and speed, between the motor and drum, it is necessary to construct a model of the transmission system 105. FIG. 11 conceptually illustrates portions of a typical belt and pulley transmission system 300 for driving a washing machine drum. The transmission system 300 includes a drum pulley 310 connected to a motor pulley 312 by a belt 314.

[0068] In developing the unbalance detection system, assumptions for the washing machine transmission 300 system include the following:

[0069] 1. The top or bottom of the belt 314 is either fully tensioned or fully slack.

[0070] 2. The belt 314 does not appreciably slip.

[0071] 3. There is no belt 314 compliance, i.e. the belt 314 does not stretch.

[0072] 4. There is no backlash.

[0073] Based on FIG. 11, the electro-dynamic equation for the motor is as follows:

τ_(m) =J _(m) ·p(ω_(m))+B _(m)·ω_(m)+(T _(mu) −T _(ml))·r _(mp)   (4)

[0074] where J_(m) is the motor pulley 312 inertia, B_(m) is the motor viscous friction coefficient, T_(mu) and T_(ml) are the upper and lower belt tension, respectively, at the motor pulley 312, r_(mp) is the radius of the motor pulley 312, and ω_(m) is the motor shaft speed. The torque applied to the drum pulley 310, τ_(d), is given by:

τ_(d)=(T _(du) −T _(dl))·r _(dp)   (5)

[0075] where T_(du) and T_(dl) are the upper and lower belt tension, respectively, at the drum pulley 310 and r_(dp) is the radius of the drum pulley 310. As noted above in assumption 2, it is assumed that the top or bottom of the belt 314 is either fully tensioned or fully slack. This leads to the following:

T_(ml)=T_(dl)=0   (6)

T_(mu)=T_(du)   (7)

[0076] Therefore, combining Equations 4 and 5 gives: $\begin{matrix} {\tau_{d} = {\frac{r_{d\quad p}}{r_{m\quad p}}\left( {\tau_{m} - {J_{m} \cdot {p\left( \omega_{m} \right)}} + {B_{m} \cdot \omega_{m}}} \right)}} & (8) \end{matrix}$

[0077] Assuming a perfect transmission system, the drum speed and motor speed are related as follows: $\begin{matrix} {\omega_{m} = {\frac{r_{d\quad p}}{r_{m\quad p}} \cdot \omega_{d}}} & (9) \end{matrix}$

[0078] Equation 8 can therefore be written in terms of drum speed as follows: $\begin{matrix} {\tau_{d} = {{\frac{r_{d\quad p}}{r_{m\quad p}} \cdot \tau_{m}} - {\left( \frac{r_{d\quad p}}{r_{m\quad p}} \right)^{2} \cdot \left( {{J_{m} \cdot {p\left( \omega_{d} \right)}} + {B_{m} \cdot \omega_{d}}} \right)}}} & (10) \end{matrix}$

[0079] From the fixed axis model, it can be seen that τ_(d) contains the terms J_(d)·p(ω_(d)) and B_(d)ω_(d), which are similar to the inertial and viscous terms as those in Equation 10. The drum and motor inertial and viscous terms combine to give: $\begin{matrix} {\left( {J_{d} + {\left( \frac{r_{d\quad p}}{r_{m\quad p}} \right)^{2} \cdot J_{m}}} \right) \cdot {p\left( \omega_{d} \right)}} \\ {and} \\ {\left( {B_{d} + {\left( \frac{r_{d\quad p}}{r_{m\quad p}} \right)^{2} \cdot B_{m}}} \right) \cdot \omega_{d}} \end{matrix}$

[0080] Now, if $J_{d}\operatorname{>>}{{\left( \frac{r_{d\quad p}}{r_{m\quad p}} \right)^{2} \cdot J_{m}}\quad {and}\quad B_{d}}\operatorname{>>}{\left( \frac{r_{d\quad p}}{r_{m\quad p}} \right)^{2} \cdot B_{m,}}$

[0081] Equation 10 simply reduces to: $\begin{matrix} {\tau_{d} = {\frac{r_{d\quad p}}{r_{m\quad p}} \cdot \tau_{m}}} & (11) \end{matrix}$

[0082] The fixed axis model given by Equation 3 is referred to the drum, i.e. torque and speed are both drum quantities. However, it is more likely that the torque and speed variables that form the input to the model will be motor quantities, so Equations 9 and 11 will be required to refer motor speed and torque to the drum.

[0083] In order for the fixed axis model to be valid, the drum must not move significantly on its suspension. Therefore when using this model unbalance detection must be carried out when the drum is above minimum plaster speed, but less than the speed at which the suspension has a significant impact. Accordingly, in embodiments of the invention, the drum is run at a predetermined speed, such as 100 rpm, for some time period while the unbalance detection is implemented. Even if the drum is commanded to run at a predetermined constant speed, there will be some speed ripple that will result in a small amount of torque ripple due to the viscous friction term, B_(d). However, if this torque ripple component is assumed negligible and the speed is otherwise substantially constant, the fixed axis model given by Equation 3 reduces to:

τ_(d) =m _(u) ·g·r _(u)·cos(α)·cos(θ_(d)−φ_(u))+J _(d) ·p(ω_(d))+τ_(mean)   (12)

[0084] In order for a unique set of parameters to be estimated for the fixed axis system, the input signal must be sufficiently exciting. This requirement will be met if the input signal excites all modes of the system; such a signal is said to be “persistently exciting.” For the system considered here, the input signal is effectively the drum speed, ω^(d), as the other variables, i.e. θ_(d) and p(ω_(d)), are themselves determined by the drum speed and vice versa.

[0085] During unbalance detection the drum will be commanded to run at a constant speed. If the actual drum speed is perfectly constant during this time there will be no angular acceleration of the drum, i.e. p(ω_(d))=0. Under this mode of operation the inertia has no effect on the drum torque so it would not be possible for the parameter estimator to get an estimate of the drum inertia, J_(d). However, in practice the speed controller 210 will not be capable of regulating the drum speed to a perfectly constant value and there will be some speed variation of the drum about the commanded speed 202.

[0086] Test results show that, at speeds pertaining to a fixed axis system, the speed ripple is approximately sinusoidal at a frequency corresponding to drum speed. At small levels of speed ripple, the unbalance torque will be approximately sinusoidal because cos(ω_(d)·t−φ_(u))≈cos({overscore (ω)}_(d)·t−φ_(u)), where {overscore (ω)}_(d) is the mean speed. This causes a problem because when the frequency of the speed ripple is the same as the mean drum speed, the inertial torque will be sinusoidal at the same frequency as the unbalance torque. Under these circumstances numerous combinations of J_(d), m_(u) and φ_(u) will result in a small estimator error and as such, the estimator may have difficulty in uniquely identifying the inertial and unbalance torque components from the overall drum torque (At larger values of speed ripple this becomes less of a problem because cos(ω_(d)·t−φ_(u))≠cos({overscore (ω)}_(d)·t−φ_(u)) and so the unbalance torque contains harmonic components, whereas the inertial torque is still sinusoidal. The parameter estimator can then more easily distinguish between the inertial and unbalance components of torque).

[0087] If the drum inertia is known before unbalance detection is carried out, the problem described above can be eliminated by compensating the drum torque for inertia. Assume for the moment that the drum inertia is known before unbalance detection is carried out. This being the case, the constant speed fixed axis model can be written as:

τ_(d) _(—) _(comp) =m _(u) ·g·r _(u)·cos(α)·cos(θ_(d)−φ_(u))+τ_(mean)

where τ_(d) _(—) _(comp)=τ_(d) −J _(d) ·p(ω_(d))

[0088] Therefore, if the drum inertia is known, the inertial torque ripple can be subtracted from the overall ripple so that the input to the estimator is just simply the torque ripple due to gravity acting on the unbalance mass, plus the mean. Expanding the τ_(d) _(—) _(comp) gives:

τ_(d) _(—) _(comp) =m _(u) ·g·r _(u)·cos(α)·cos(φ_(u))cos(θ_(d))+m _(u) ·g·r _(u)·cos(α)·sin(φ_(u))sin(θ_(d))+τ_(mean)

[0089] The above equation can be written in the following form suitable for Parameter Estimators such as the RLS estimator:

y=x^(T)θ

[0090] where:

y=τ_(d) _(—) _(comp)

x ^(T)=[1 cos θ_(d) sin θ_(d)]

[0091] $\theta = {\begin{bmatrix} \tau_{mean} \\ {{m_{u} \cdot g \cdot r_{u} \cdot \cos}\quad {\alpha \cdot \cos}\quad \varphi} \\ {{m_{u} \cdot g \cdot r_{u} \cdot \cos}\quad {\alpha \cdot \sin}\quad \varphi} \end{bmatrix} = \begin{bmatrix} P_{1} \\ P_{2} \\ P_{3} \end{bmatrix}}$

[0092] and P₁₋₃ are the parameters, or coefficients, estimated by the PE.

[0093] It can be seen from the parameter matrix, θ, that further manipulation of P_(2 and P) ₃ is required to extract the peak torque ripple and the torque ripple phase lag. This is done as follows: $\varphi_{u} = {\tan^{- 1}\left( \frac{P_{3}}{P_{2}} \right)}$ $m_{u} = {\frac{P_{3}}{{g \cdot r_{u} \cdot \cos}\quad {\alpha \cdot \sin}\quad \varphi_{u}}\quad {or}\quad \frac{P_{2}}{{g \cdot r_{u} \cdot \cos}\quad {\alpha \cdot \cos}\quad \varphi_{u}}}$

[0094] If the acceleration is calculated from drum position, rather than speed, it is essential that the drum position be filtered. The reason for this is that the acceleration is obtained by differentiating the drum position twice. A small amount of noise on the drum position signal could result in very noisy acceleration data, which could in turn affect the accuracy of the estimated parameters. (However, if the speed is known the problem is not as severe because only one differentiation is required to calculate the acceleration; drum position in this case is determined by integrating the speed.)

[0095] Being a sawtooth waveform, the drum position signal contains high frequency components not associated with noise. Therefore, applying a low pass filter directly to the drum position signal will distort it significantly. To avoid these problems the sine and cosine of the signal is filtered and then the filtered drum position is reconstructed as follows: $\theta_{d\_ filtered} = {\tan^{- 1}\left( \frac{\left( {\sin \quad \theta_{d}} \right)_{filtered}}{\left( {\cos \quad \theta_{d}} \right)_{filtered}} \right)}$

[0096] In the embodiment described above, the drum inertia is calculated prior to the unbalance determination. One method of calculating the inertia is to ramp the drum speed from one predetermined speed to another, for example, 100 rpm to 200 rpm, and feed the resulting data into a parameter estimator with J_(d) as a tractable parameter. The torque and speed profiles will then look as shown in FIG. 12, which assumes a linear ramp in speed (though a linear ramp is not a requirement). Note that for reasons of clarity, FIG. 12 does not illustrate the torque or speed ripple.

[0097] In accelerating from ω_(d1) to ω_(d2), it is likely that the suspension will start to affect the mean torque and torque ripple. However, these suspension effects are not taken into account by the fixed axis model given by Equation 2. In calculating the inertia only, the change in torque ripple due to suspension effects is not of much importance. However, the change in mean torque as the speed is increased will affect the inertia calculation, but can be modeled as an additional viscous friction term, B_(s), if it is assumed that the change in mean torque between ω_(d1) to ω_(d2) is a reasonably linear function of speed. Moreover, this additional viscous term can be lumped together with the actual viscous friction term.

[0098] Assuming that the mean torque varies linearly with speed between ω_(d1) and ω_(d2), the profile shown in FIG. 12 can be modeled using the following equation:

τ_(d) =J _(d)p(ω_(d))+B _(J)ω_(d)+τ_(J)   (13)

[0099] where B_(J)=B_(s)+B_(d) and τ_(J)≠τ_(c)

[0100] Although torque ripple is not that important as far as estimating inertia is concerned—at least when using a speed profile such as that in FIG. 12—better results will be achieved from a Parameter Estimator if a sinusoidal torque ripple component is included in the model. The reason for this is that the Parameter Estimator may initially perceive the torque ripple as being a sinusoidal variation in mean torque. The torque ripple component will be of the same form as that of the fixed axis model. Therefore, with torque ripple included the inertia model becomes:

τ_(d) =J _(d) p(ω_(d))+B _(J)ω_(d)+τ_(J) +A·cos θ_(d) +B·sin θ _(d)   (14)

[0101] where A and B are constants. Re-arranging Equation 14 into the form y=x^(T)θ for parameter estimation yields:

y=τ_(d)

x ^(T) =[p(ω^(d)) ω_(d) 1 cosθ_(d) sin θ_(d)]

[0102] $\theta = {\begin{bmatrix} J_{d} \\ B_{J} \\ \tau_{J} \\ A \\ B \end{bmatrix} = \begin{bmatrix} P_{1} \\ P_{2} \\ P_{3} \\ P_{4} \\ P_{5} \end{bmatrix}}$

[0103] P₁₋₅ are the parameters estimated by the parameter estimator. If the drum moves on its suspension significantly the torque ripple will change and so, therefore, will the A and B coefficients. As a result the estimator parameters P4 and P5 will also change in an attempt to track the changes in A and B. This is acceptable because in this particular embodiment only the inertia parameter P₁ is required and this is not affected significantly by a gradual change in torque ripple when using a speed profile such as that in FIG. 11. The inertia is therefore directly accessible and is simply the parameter P₁.

[0104] In another exemplary embodiment of the invention, an alternative inertia calculation is employed that requires the drum be linearly accelerated from a first predetermined speed to a second higher speed, but does not require the use of a parameter estimator. As noted above, at around minimum plaster speed there is very little suspension movement and one can assume a fixed axis model. However, as the drum is accelerated beyond the minimum plaster speed, the effects of the suspension will become noticeable

[0105] If the ripple component of the torque waveform is removed, the resulting trace looks something like that shown in FIG. 13. The main quantity of interest in FIG. 13 is the step increase in torque at the onset of acceleration (or the step decrease in torque at the end of acceleration), τ_(d) _(—) _(accl). Once τ_(d) _(—) _(accl) is determined, the drum inertia, J_(d), can then be calculated as follows: $J_{d} = \frac{\tau_{d\_ accl}}{p\left( \omega_{d} \right)}$

[0106] The calculation of τ_(d) _(—) _(accl) follows. The torque trace in FIG. 13 is split up into three distinct regions: A, B and C. The average torque in each of these regions is given by a, b and c, which are calculated as follows: $\begin{matrix} {a = {\frac{1}{T_{A}}{\int_{t_{0}}^{t_{1}}{\tau_{d}\quad {t}}}}} \\ {b = {\frac{1}{T_{B}}{\int_{t_{1}}^{t_{2}}{\tau_{d}\quad {t}}}}} \\ {c = {\frac{1}{T_{C}}{\int_{t_{2}}^{t_{3}}{\tau_{d}\quad {t}}}}} \end{matrix}$

[0107] The acceleration torque is then given by: $\tau_{d\_ accl} = {b - \frac{\left( {c + a} \right)}{2}}$

[0108] The above method is still applicable with torque ripple present provided that each region contains an integer number of ripple cycles. The periods T_(A), T_(B) and T_(C) must therefore be chosen carefully to ensure this is the case. However, the greater the number of ripple cycles in each region there are, the less critical it is to have an integer number of cycles.

[0109]FIG. 13 shows the torque trace with the ripple component removed. This method is applicable with torque ripple present, provided that each region contains an integer number of ripple cycles. The periods T_(A), T_(B) and T_(C) must therefore be chosen carefully to ensure this is the case. However, the greater the number of ripple cycles in each region there are, the less critical it is to have an integer number of cycles.

[0110] The processor implementation for an exemplary embodiment is detailed below. Discretising the integration process yields the following equations for a, b and c: $a = {\frac{T_{s}}{T_{A}} \cdot {\sum\limits_{n = 1}^{{({t_{1} - t_{0}})}/T_{s}}\tau_{d{(n)}}}}$ $b = {\frac{T_{s}}{T_{B}} \cdot {\sum\limits_{n = 1}^{{({t_{2} - t_{1}})}/T_{s}}\tau_{d{(n)}}}}$ $c = {\frac{T_{s}}{T_{C}} \cdot {\sum\limits_{n = 1}^{{({t_{3} - t_{2}})}/T_{s}}\tau_{d{(n)}}}}$

[0111] The acceleration torque is therefore given by: $\tau_{d\_ accl} = {T_{s} \cdot \left( {{\frac{1}{T_{B}} \cdot {\sum\limits_{n = 1}^{{({t_{2} - t_{1}})}/T_{s}}\tau_{d{(n)}}}} - {\frac{1}{2 \cdot T_{A}} \cdot {\sum\limits_{n = 1}^{{({t_{1} - t_{0}})}/T_{s}}\tau_{d{(n)}}}} - {\frac{1}{2 \cdot T_{C}} \cdot {\sum\limits_{n = 1}^{{({t_{3} - t_{2}})}/T_{s}}\tau_{d{(n)}}}}} \right)}$

[0112] The inertia (kg.m²) is then given by: $J_{d} = \frac{T_{s} \cdot \begin{pmatrix} {{\frac{1}{T_{B}} \cdot {\sum\limits_{n = 1}^{{({t_{2} - t_{1}})}/T_{s}}\tau_{d{(n)}}}} - {\frac{1}{2 \cdot T_{A}} \cdot}} \\ {{\sum\limits_{n = 1}^{{({t_{1} - t_{0}})}/T_{s}}\tau_{d{(n)}}} - {\frac{1}{2 \cdot T_{C}} \cdot {\sum\limits_{n = 1}^{{({t_{3} - t_{2}})}/T_{s}}\tau_{d{(n)}}}}} \end{pmatrix}}{p\left( \omega_{d} \right)}$

[0113] In some applications it may be possible to accelerate the drum from ω_(d1) to a suitably higher speed, ω_(d2), without exciting the suspension significantly—particularly if 107 _(d1) is set to be the minimum plaster speed. If this is the case then another embodiment of the invention is possible whereby the inertia and unbalance mass can be calculated simultaneously, thus eliminating the need to calculate inertia and mass independently as described in the above embodiment. There is also no need to perform inertia compensation. In this embodiment the generalized fixed axis model given by equation 3 can be assumed. Expanding the cos term in equation 3 yields:

τ_(d) =m _(u) ·g·r _(u)·cos(α)·cos(φ_(u))·cos(θ_(d))+m _(u) ·g·r _(u)·cos(α)·sin(φ_(u))·sin(θ_(d))+J _(d) ·p(ω_(d))+B _(d)·ω_(d)+τ_(c)signum(ω_(d))   (15)

[0114] It will be noticed that Equation 15 is of the same form as the inertia model given by Equation 14, with A=m_(u)·g·r_(u)cos(α)·cos(φ_(u)) and B=m_(u)g·r_(u)·cos(α)·sin(φ_(u)). Essentially, this embodiment uses the same procedure as calculating the inertia using a Parameter Estimator in the previous embodiment, except that in addition to calculating inertia, the unbalance mass can be extracted from the A and B parameters because the axis of the drum essentially remains fixed. The method for calculating m_(u) from A and B above is the same method as that described in the second half of the previous embodiment.

[0115] As noted above, peak inertial torque ripple will be determined by J_(d) for a given speed ripple, and the gravitational torque ripple will be determined by m_(u) assuming that r_(u) can be calculated before hand. FIG. 14 conceptually shows a washing machine drum 104 containing laundry 110 and an unbalance mass 112. In calculating the unbalance radius r_(u), it is assumed that the laundry 110 is distributed as shown in FIG. 14 with the unbalance 112 acting at the inner radius formed by the evenly distributed laundry 110.

[0116] The inertia of the laundry 110 can be calculated by subtracting the empty drum inertia from J_(d):

J _(l) =J _(d) −J _(empty) _(—) _(drum)

[0117] The inertia of the laundry will be approximately equal to: $J_{l} = {\frac{m_{l}}{2}\left( {r_{d}^{2} + r_{u}^{2}} \right)}$

[0118] where m_(l) is the laundry mass.

[0119] The volume of the laundry is approximately equal to:

V _(l)=lπ(r _(d) ² −r _(u) ²)

[0120] where ‘l’ is the length of the drum. Assuming a figure for the density of modern fabrics, D_(l), the mass of the laundry can be written as:

m_(l)=D_(l)V_(l)

[0121] r_(u) is therefore given by the following equation $r_{u} = \sqrt[4]{r_{d}^{4} - \frac{2\quad J_{1}}{D_{1}l\quad \pi}}$

[0122] (It is anticipated that D_(l) will depend upon the type of laundry to be washed, e.g. synthetics, woolens, etc. will each have its own density)

[0123] In another embodiment of the present invention, the problem of having an “insufficiently excited” system is solved by introducing a “dither” signal to sufficiently excite all modes of the system. In the context of the system under investigation, this involves adding a signal to the speed command signal 202 such that the actual drum speed fluctuates around a mean value in a deterministic manner.

[0124] One requirement of the dither signal is that it should be of reasonably small amplitude so that the drum speed does not deviate too much from its mean value. Another requirement of the signal is that it should not excite any system resonances that could result in excessive vibration.

[0125] As described above, one of the reasons why the inherent speed ripple is unsuitable is because its frequency is equal to that of the mean drum speed. For low values of speed ripple, this means that the unbalance torque and inertial torque are both approximately sinusoidal at the same frequency and the parameter estimator could therefore have difficulty in distinguishing between the two torque components. However, if the drum ripple contained frequency components of a different frequency to that of the mean drum speed, the unbalance and inertial components of torque would also differ in frequency and would therefore be more easily identifiable by the parameter estimator.

[0126] One of the benefits of using a dither signal to excite the system over the embodiments described previously is that unbalance mass and inertia can be calculated simultaneously at a substantially constant drum speed. Therefore, during unbalance detection the mean drum speed can be fixed at a speed to allow the use of the fixed axis model given by Equation 3, or if torque ripple due to viscous friction is assumed negligible, Equation 12 may be used. No particular form of dither signal is required, though in certain implementations, a 1 Hz sinusoidal dither signal with an amplitude of about 0.2 rad/s was used with satisfactory results.

[0127] The particular embodiments disclosed above are illustrative only, as the invention may be modified and practiced in different but equivalent manners apparent to those skilled in the art having the benefit of the teachings herein. Furthermore, no limitations are intended to the details of construction or design herein shown, other than as described in the claims below. It is therefore evident that the particular embodiments disclosed above may be altered or modified and all such variations are considered within the scope and spirit of the invention. Accordingly, the protection sought herein is as set forth in the claims below. 

What is claimed is:
 1. A method of determining a load unbalance mass contained in a spinning washing machine drum driven by a motor, the method comprising: determining the motor torque ripple; determining the motor speed; and determining the load unbalance mass based on the motor torque and speed.
 2. The method of claim 1, wherein determining the motor torque ripple includes measuring the motor voltage and current.
 3. The method of claim 1, further comprising constructing a mathematical model of the washing machine drum load describing the relationship between motor torque and the unbalance mass.
 4. The method of claim 3, further comprising determining coefficients of the mathematical model using a parameter estimator.
 5. The method of claim 4, wherein the parameter estimator is a recursive least squares estimator.
 6. The method of claim 1, further comprising determining the combined inertia of the washing machine drum and the unbalance mass.
 7. The method of claim 6, wherein the motor torque is compensated for the combined inertia.
 8. The method of claim 6, wherein determining the combined inertia includes running the motor through a predetermined speed profile.
 9. The method of claim 6, wherein determining the combined inertia includes running the motor at a first predetermined speed, and accelerating the motor to a second predetermined speed.
 10. The method of claim 9, wherein the motor is accelerated substantially linearly from the first predetermined speed to the second predetermined speed.
 11. The method of claim 6, wherein determining the combined inertia includes fluctuating the motor speed about a predetermined speed value.
 12. The method of claim 11, wherein fluctuating the motor speed includes applying a speed demand signal to a speed controller, and applying a dither signal to the speed demand signal.
 13. The method of claim 1, wherein determining the unbalance mass includes running the motor at a predetermined speed for a predetermined time period.
 14. The method of claim 1, wherein determining the motor torque ripple includes determining the motor torque and speed are determined at a plurality of sample points.
 15. The method of claim 1, further comprising determining the motor acceleration.
 16. The method of claim 15, wherein the motor acceleration is calculated based on the motor speed.
 17. The method of claim 1, further comprising determining the washing machine drum angular position.
 18. The method of claim 17, wherein the washing machine drum angular position is calculated based on the motor speed.
 19. A clothes washing machine system, comprising: a cabinet; a drum rotatably mounted within the cabinet; a motor operably coupled to the drum for rotating the drum within the cabinet; a processor connected to the motor; and a memory device accessible by the processor and storing program code implementing a method comprising determining the motor torque ripple, determining the motor speed, and determining a load unbalance mass based on the motor torque and speed.
 20. The clothes washing machine system of claim 19, further comprising a device for measuring the drum rotation speed.
 21. The clothes washing machine system of claim 19, wherein the processor receives indications of the motor current and voltage, and wherein the method implemented by the program code includes determining the position of the rotor based on the motor current and voltage.
 22. The clothes washing machine system of claim 19, wherein the method implemented by the program code includes determining the combined inertia of the washing machine drum and the unbalance mass.
 23. The clothes washing machine system of claim 21, wherein the method implemented by the program code includes compensating the determined motor torque for the combined inertia.
 24. A clothes washing machine system, comprising: a cabinet; a drum rotatably mounted within the cabinet; a sensorless motor operably coupled to the drum for rotating the drum within the cabinet; a processor connected to the motor, the processor receiving indications of the motor current and voltage; and a memory device accessible by the processor, and storing program code implementing a method of determining a load unbalance mass based on the indications of the motor current and voltage.
 25. The clothes washing machine system of claim 24, wherein the method implemented by the program code includes determining the motor torque ripple, determining the motor speed, and determining a load unbalance mass based on the motor torque and speed.
 26. The clothes washing machine system of claim 25, wherein the method implemented by the program code includes compensating the determined motor torque for for the combined inertia.
 27. A system for determining a load unbalance mass contained in a spinning washing machine drum driven by a motor, comprising: a processor; and a memory device accessible by the processor, and storing program code implementing a method comprising determining the motor torque ripple, determining the motor speed, and determining the load unbalance mass based on the motor torque and speed.
 28. A program storage device storing program code implementing a method of determining a load unbalance mass contained in a spinning washing machine drum driven by a motor, the method comprising: determining the motor torque ripple; determining the motor speed; and determining the load unbalance mass based on the motor torque and speed.
 29. The program storage device of claim 28, wherein determining the motor torque ripple includes measuring the motor voltage and current.
 30. The program storage device of claim 28, further storing a model of the washing machine drum load describing the relationship between motor torque and the unbalance mass.
 31. The program storage device of claim 28, wherein the method further comprises determining the combined inertia of the washing machine drum and the unbalance mass.
 32. The program storage device of claim 31, wherein the motor torque is compensated for the combined inertia.
 33. The program storage device of claim 31, wherein determining the combined inertia includes running the motor through a predetermined speed profile.
 34. The program storage device of claim 31, wherein determining the combined inertia includes running the motor at a first predetermined speed, and accelerating the motor to a second predetermined speed.
 35. The program storage device of claim 31, wherein the motor is accelerated substantially linearly from the first predetermined speed to the second predetermined speed.
 36. The program storage device of claim 31, wherein determining the unbalance mass includes running the motor at a predetermined speed for a predetermined time period.
 37. The program storage device of claim 31, wherein determining the combined inertia includes fluctuating the motor speed about a predetermined speed value.
 38. The program storage device of claim 37, wherein fluctuating the motor speed includes applying a speed demand signal to a speed controller, and applying a dither signal to the speed demand signal.
 39. The program storage device of claim 28, wherein determining the motor torque ripple includes determining the motor torque and speed at a plurality of sample points.
 40. The program storage device of claim 28, further comprising determining the motor acceleration.
 41. The program storage device of claim 40, further comprising determining the washing machine drum angular position. 